/**
 * @addtogroup bsc_gnss_ubx
 * bsc_gnss_ubx
 * @{
 */
/**
 * @file         bsc_gnss_ubx.h
 * @brief        
 * @note    
 * @author       tj(jie.tan@hopechart.com, 谈杰)
 *
 * @par          修改日志
 * <table>
 * <tr><th>Date        <th>Version               <th>Author                                    <th>Description
 * <tr><td>2024-01-09  <td>1.0                   <td>tj(jie.tan@hopechart.com, 谈杰)            <td>创建初始版本
 * @copyright    杭州鸿泉物联网技术股份有限公司
 */
#ifndef _BSC_GNSS_UBX_H_
#define _BSC_GNSS_UBX_H_

#include "ofc/ofc_types.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Ubx协议格式化
 * 
 * UBX协议数据组成：帧头（2字节）+ ClassId（1字节）+ MessageId（1字节）+ 指令内容 + 校验码（2字节）
 * 格式化Ubx语句后计算校验码并附加在buffer尾部
 * 
 * @param buffer：格式化输出缓存区
 * @param bufsize：缓存区尺寸
 * @param cmd：被格式化的数据，包含 ClassId（1字节）+ MessageId（1字节）+ 指令内容
 * @param cmdsize: 被格式化数据的尺寸
 * @return >0:格式化后指令长度
 *         <0:错误码
 * 
 * @example
 * Byte buffer[30] = {0};
 * static const Byte cmd[] = {0x06, 0x04, 0x04, 0x00, 0xFF, 0xB9, 0x02, 0x00};
 * UbxFormat(buffer, sizeof(buffer), cmd, sizeof(cmd));
 */
Int32 UbxFormat(Byte *buffer, UInt32 bufsize, Byte *cmd, UInt32 cmdsize);


#ifdef __cplusplus
} // extern "C" {
#endif

#endif

/**
 * @} 
 */
 
 
 
 
 
 
 
 
 
 
 
 
 
 


